package elektra.plugin.core;

import javax.inject.Singleton;

import com.google.inject.Inject;

import elektra.plugin.environment.IPluginContext;
import elektra.plugin.environment.Log;

@Singleton
public interface IPlugin {
        public String getName();
        public String getTypeName();
        @Inject
        public  void setPluginContext(IPluginContext context);
        
        public ICommandProcessor getProcessor();
        
        @Log
        public void init();
        @Log
        public void shutDown();
               
}
